/****************************************************************************/
/* File: scs-action.h                                                       */
/* Desc: Specification file for the input manager type                      */
/* Created: 2014-11-11                                                      */
/* Revised: 2014-11-16                                                      */
/* Authors: Sterling P. de Mille                                            */
/****************************************************************************/

// include once
#ifndef _SCS_INPUT_H_
#define _SCS_INPUT_H_

// core data types
#include "../Core/scs-types.h"
// input keyboard type
#include "scs-keyboard.h"
// input mouse type
#include "scs-mouse.h"
// input game controller type
#include "scs-controller.h"

// assert support
#include <assert.h>

class SCSinput {
protected:

	SCSkeyboard m_kKeyboard;
	SCSmouse m_kMouse;
	SCScontroller m_kController;

	SCSbool m_iCloseWindow;
	SCSbool m_iControllerConnected;

	static SCSinput* m_pkSingleton;

public:

	SCSinput ();
	~SCSinput ();

	SCSbool CloseWindow ();

	void Update ();

	SCSbool ControllerConnected ();
};

#endif // _SCS_INPUT_H_
